package com.atguigu.gmall.user.controller;


import com.atguigu.gmall.common.result.Result;
import com.atguigu.gmall.user.service.UserInfoService;
import com.atguigu.gmall.user.vo.UserLoginSuccessVo;
import com.atguigu.gmall.user.vo.UserLoginVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@RequestMapping("/api/user")
@RestController
public class UserLoginController {


    @Autowired
    UserInfoService userInfoService;
    /**
     * 登录
     * response.data: Result
     * response.data.data: Result.data = {token,nickName}
     *
     *
     * @param vo
     * @return
     */
    @PostMapping("/passport/login")
    public Result login(@RequestBody UserLoginVo vo, HttpServletRequest request,
                        HttpServletResponse response){

        UserLoginSuccessVo successVo = userInfoService.login(vo);

//        response.addCookie(new Cookie("",""));
        //并不能这么做事
        //远程调用合并购物车
        //自动签到送积分
        //自动下发当日优惠券
        //............
        return Result.ok(successVo);
    }


    /**
     * 用户退出
     * token：
     * 1)、页面（非ajax）：在请求头的 Cookie: token=a61fddda0a2f4e409b375a5efb3e2d87
     *      取： @CookieValue("token") String cookieToken
     * 2)、ajax：   在请求头的 token: a61fddda0a2f4e409b375a5efb3e2d87
     *      取： @RequestHeader("token") String token
     * @return
     */
    @GetMapping("/passport/logout")
    public Result logout(@RequestHeader("token") String token){

        //只要退出成功，前端自己删掉cookie；后台也要自己删除这个用户
        userInfoService.logout(token);
        return Result.ok();
    }
}
